package com.loong.framework.annotation;

import com.loong.framework.constant.SystemConst;
import com.loong.framework.enums.LimitType;

import java.lang.annotation.*;

/**
 * @author:zhanwang
 * @date: 2023/8/15
 * @time: 17:53
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RateLimiter {
  /** 限流key */
  String key() default SystemConst.LimitKey;

  /** 限流时间,单位秒 */
  int time() default 60;

  /** 限流次数 */
  int count() default 100;

  /** 限流类型 */
  LimitType limitType() default LimitType.DEFAULT;

  /** 限流后返回的文字 */
  String limitMsg() default "访问过于频繁，请稍候再试";
}
